import React, { Component } from 'react';
import {
    Dimensions,
    PixelRatio,
    Platform,
    AsyncStorage
} from 'react-native';
import Storage from 'react-native-storage';
import Theme from 'teaset/themes/Theme'

String.prototype.startWith = function (str) {
    var reg = new RegExp("^" + str);
    return reg.test(this);
}

let storage = new Storage({
    // 最大容量，默认值1000条数据循环存储
    size: 1000,

    // 存储引擎：对于RN使用AsyncStorage，对于web使用window.localStorage
    // 如果不指定则数据只会保存在内存中，重启后即丢失
    storageBackend: AsyncStorage,

    // 数据过期时间，默认一整天（1000 * 3600 * 24 毫秒），设为null则永不过期
    defaultExpires: 1000 * 3600 * 24,

    // 读写时在内存中缓存数据。默认启用。
    enableCache: true,

    // 如果storage中没有相应数据，或数据已过期，
    // 则会调用相应的sync方法，无缝返回最新数据。
    // sync方法的具体说明会在后文提到
    // 你可以在构造函数这里就写好sync的方法
    // 或是写到另一个文件里，这里require引入
    // 或是在任何时候，直接对storage.sync进行赋值修改require('./sync')  // 这个sync文件是要你自己写的
    sync: {}
});

const isIPhoneX = Platform.OS == 'android' ? false : (Theme.isIPhoneX ? true : false);

const headerHeight = Platform.OS == 'android' ? 68 : (Theme.isIPhoneX ? 88 : 64);
const paddingTop = Platform.OS == 'android' ? 24 : (Theme.isIPhoneX ? 44 : 20);
const paddingBottom = Platform.OS == 'android' ? 0 : (Theme.isIPhoneX ? 34 : 0);
const navigationHeaderHeight = Platform.OS == 'android' ? 68 : 44;

var Global = {
    OS: Platform.OS,
    width: Dimensions.get("window").width,
    height: Dimensions.get("window").height,
    ServerUrl: 'http://qhd.1122334455.cn',
    pageSize: 10,
    uid: '',
    user : {},
    headerHeight: headerHeight,
    paddingTop: paddingTop,
    paddingBottom : paddingBottom,
    navigationHeaderHeight : navigationHeaderHeight,
    bodyHeight : Dimensions.get("window").height - headerHeight,
    headerBackgroundColor: '#B72426',
    px: 1 / PixelRatio.get(),
    isIPhoneX : isIPhoneX,
    storage: storage,
    phoneReg: /^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9}$|17[0-9]{9}$/,
    errorMsg: '网络开小差了，请稍候再试',
};

export default Global;